package org.example;

import java.util.LinkedList;
import java.util.Queue;

public class GraphTraverse {

    public static void bfsMethod(int[][] adjMatrix,int sourceNode){
        //利用队列
        Queue<Integer> queue=new LinkedList<Integer>();
        int numOfNodes=adjMatrix[sourceNode].length;
        //没访问过的初始化为0
        int[] isVisted=new int[numOfNodes];
        isVisted[sourceNode]=1;
        queue.add(sourceNode);
        //index 表示
        int i=0;
        //当前元素
        int element=0;
        while (!queue.isEmpty()){
            element=queue.remove();
            System.out.print(element+" ");
            i=0;
            while (i < numOfNodes) {
                if (adjMatrix[element][i] == 1 && isVisted[i] == 0) {
                    queue.add(i);
                }
            }
        }
    }
}
